from 工程.凌云项目.X5JL接收激励模块.基础配置.基础配置引用 import *

def 频率转换时间测试初始化():
    模块编号 = str(sys.UUTINFO[1])
    if gy参数.初始化标识 != '频率转换时间测试初始化'+模块编号:
        gy参数.初始化标识='频率转换时间测试初始化'+模块编号
    else:
        return
    gy产品.模块电源.连接()
    gy产品.模块串口.连接()
    gy产品.模块CAN总线.连接()
    gy仪器.示波器.连接()
    gy产品.射频路由.连接()

    gy仪器.示波器.设置水平标度(10e-6)
    gy仪器.示波器.设置水平延时(0)
    gy仪器.示波器.选择通道('ch1')
    gy仪器.示波器.设置通道垂直标度(1,0.05)
    gy仪器.示波器.设置通道垂直偏移(1,0)
    gy仪器.示波器.设置触发源('ch1')
    gy仪器.示波器.设置脉宽触发(1,'MORETHAN',500e-9)
    gy仪器.示波器.设置通道触发电平(0.03,1)
    gy仪器.示波器.设置触发模式()
    gy仪器.示波器.设置运行()
    gy仪器.示波器.设置单次触发()

    gy产品.射频路由.接通激励到示波器()
    print("频率转换时间测试初始化")

def 频率转换时间(频点1=960,频点2=1224):
    频率转换时间测试初始化()

    gy产品.模块串口.设置AGC衰减(0)
    gy产品.模块串口.设置频点(频点1)
    gy方法.时间处理.延时(0.5)
    gy仪器.示波器.设置运行()
    gy仪器.示波器.设置单次触发()
    gy方法.时间处理.延时(0.5)
    gy产品.模块串口.设置频点(频点2)
    波形=gy仪器.示波器.读取波形值(1,1,0)
    n=len(波形)
    print(n,波形[:10000])
    print(n, 波形[n-10000:])
    max1 = max(波形[:10000])
    max2 = max(波形[n-10000:])
    fs=100
    pc=1
    bj=n//fs
    zc=0
    for i in range(fs):
        maxt=max(波形[i*bj:i*bj+bj])
        if maxt < max1-pc or maxt > max1 + pc:
            zc = i-1
            break
    yc = 0
    for i in range(fs):
        maxt = max(波形[-i * bj-bj:-i * bj-1])
        if maxt < max2 - pc or maxt > max2 + pc:
            yc = i-1
            break

    # 转换时间=200*(1-200*(zc+yc)/n)
    转换时间=fs-zc-yc
    print(max1, max2 ,转换时间,n)
    gy方法.测试结果保存.结果保存(转换时间, "")


if __name__=='__main__':
    pass
    sys.UUTINFO = [0, 1]
    # 频率转换时间(960,1224)
    频率转换时间(1224,960)